From: Stefan Monnier Date: Wed, 6 May 2009 02:49:35 +0000 (+0000) Subject: (-windowDidResize:): Avoid inf-loop under GNUStep. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~421^2~654 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=6ba6e356d2676ada37295dac3c99e1dd8d21a67f;p=emacs.git (-windowDidResize:): Avoid inf-loop under GNUStep. --- diff --git a/src/ChangeLog b/src/ChangeLog index 38c8147281e..e3bfd214863 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2009-05-06 Stefan Monnier + + * nsterm.m (-windowDidResize:): Avoid inf-loop under GNUStep. + 2009-05-06 YAMAMOTO Mitsuharu * keyboard.h (add_user_signal): Fix typo in extern. diff --git a/src/nsterm.m b/src/nsterm.m index 5f1c50cc48d..3ec7a34f277 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1151,10 +1151,10 @@ x_set_window_size (struct frame *f, int change_grav, int cols, int rows) pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows); /* If we have a toolbar, take its height into account. */ - /* XXX: GNUstep has not yet implemented the first method below, added - in Panther, however the second is incorrect under Cocoa. */ if (tb) FRAME_NS_TOOLBAR_HEIGHT (f) = + /* XXX: GNUstep has not yet implemented the first method below, added + in Panther, however the second is incorrect under Cocoa. */ #ifdef NS_IMPL_COCOA NSHeight ([window frameRectForContentRect: NSMakeRect (0, 0, 0, 0)]) /* NOTE: previously this would generate wrong result if toolbar not @@ -5059,8 +5059,14 @@ extern void update_window_cursor (struct window *w, int on); } #endif /* NS_IMPL_COCOA */ + // Calling x_set_window_size tends to get us into inf-loops + // (x_set_window_size causes a resize which causes + // a "windowDidResize" which calls x_set_window_size). + // At least with GNUStep, don't know about MacOSX. --Stef +#ifndef NS_IMPL_GNUSTEP if (cols > 0 && rows > 0) - x_set_window_size (emacsframe, 0, cols, rows); + x_set_window_size (emacsframe, 0, cols, rows); +#endif ns_send_appdefined (-1); }